区块链结构层设计与实现
undefined区块链结构层设计与实现
区块链结构主要包括Block、Blockchain、Transaction、UTXO,他们都与P2P网络无关,与第七版相比,这些结构的设计并没有太大的变动:
undefinedBlock
type Block struct {Timestamp int64`json:"Timestamp"`Hash []byte`json:"Hash"`PrevHash []byte`json:"PrevHash"`Transactions []*Transaction `json:"Transactions"`Nonce int`json:"Nonce"`Height int`json:"Height"`MerkleRoot []byte`json:"MerkleRoot"`Difficulty int`json:"Difficulty"`TxCount int`json:"TxCount"`}
Block需要存储到数据库,所以需要为每一个字段给出json名称
undefinedBlockchain
type Blockchain struct {LastHash []byteDatabase *badger.DBInstanceId string}
undefinedTransaction
typeTransactionstruct {ID []byteInputs []TxInputOutputs []TxOutput}
undefinedUTXO
与前一版设计与实现基本相同,utxo也是同样保存到数据库中,以提升效率。
undefinedMerkleTree
与前一版设计与实现相同
undefined数据存储
undefined数据库变更为更高效的badger.DB
badger.DB的操作与bolt.DB的操作有些区别。
